package com.bocai.utils;

import net.sf.ehcache.Cache;
import net.sf.ehcache.CacheManager;
import net.sf.ehcache.Element;

/**
  * @ClassName: EHCacheUtils 
 * @Description: EHCache缓存 
  * @author zyn161616@163.com 
  * @date 2017年9月15日 下午2:16:50
 */
public class EHCache {
	// 从calsses目录中查找ehcache.xml配置文件
	private static final CacheManager cacheManager = CacheManager.getInstance();

	// cache对象
	private Cache cache;

	// setterAndGetter
	public Cache getCache() {
		return cache;
	}

	public void setCache(Cache cache) {
		this.cache = cache;
	}

	// 无参构造器
	public EHCache() {
		// 获取hurrgorder的缓存
		this.cache = cacheManager.getCache("hurrgorder");
	}

	/*
	 * 通过名称从缓存中获取数据
	 */
	public Object getCacheElement(String cacheKey) throws Exception {
		// 从缓存中获取数据
		Element e = cache.get(cacheKey);
		// 如果不为空返回这个数据
		if (ObjUtils.isNotEmpty(e)) {
			// 返回查询结果
			return  e.getObjectValue();
		}
		// 返回
		return null;
	}

	/*
	 * 将对象添加到缓存中
	 */
	public void addToCache(String cacheKey, Object result) throws Exception {
		// 创建Element对象
		Element element = new Element(cacheKey, result);
		// 加入缓存中区
		cache.put(element);
		
	}
	
	/*
	 * 清空缓存 
	 */
	public void removeAllCache() {
		cache.removeAll();
	}
	
}
